package w83a.w83aOperacionesPaso.w83aPreavisos;

import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83a.w83aBeans.W83aDocumentacionBean;
import w83a.w83aUtilidadesComunes.W83aClsConstantes;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

public class W83aIrEdicionPreavisoAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		contexto.set("modoPantalla",W83aClsConstantes.MODO_EDICION);
		contexto.set("strTitleKeyPpal","comun.titulo.procesoelectoral");
		contexto.set("strTitleKey","menu.comun.preavisos");
		contexto.set("migas","inicioportal.inicio.documelectoral.documentacionpreaviso");
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

	
		boolean desdeEdicion=false;
		if (contexto.get("codSelecEdicion")!=null && StringUtils.isNotEmpty((String)contexto.get("codSelecEdicion")))
		{
			desdeEdicion=true;
		}
		if (StringUtils.isNotEmpty(request.getParameter("codSelec")) || desdeEdicion )
		{
			String formatonumpreaviso="";
			String formatocodselec="";
			if (request.getParameter("codSelec").indexOf("O")!=-1){
				formatocodselec=request.getParameter("codSelec").substring(request.getParameter("codSelec").indexOf("O")+3,request.getParameter("codSelec").length());
				formatonumpreaviso=formatonumpreaviso.concat(formatocodselec.substring(0,2)).concat("_").concat(formatocodselec.substring(3,7)).concat("_").concat(formatocodselec.substring(9,formatocodselec.length()));
			}			
			HashMap mapa=new HashMap();
			if (StringUtils.isNotEmpty(request.getParameter("codSelec")))
			{
				if (!"".equals(formatonumpreaviso)){
					mapa.put("codSelec", formatonumpreaviso);	
				}
				else{
					mapa.put("codSelec", request.getParameter("codSelec"));	
				}
			}
			else
			{
				mapa.put("codSelec",contexto.get("codSelecEdicion"));
			}
			if (StringUtils.isNotEmpty(request.getParameter("pestania")))
			{
				mapa.put("pestania", request.getParameter("pestania"));
			}
			else
			{
				mapa.put("pestania", "0");
				contexto.set("w83aMapaFilePreavisos", new HashMap());
				contexto.set("w83aListaBorradoFilePreavisos", new ArrayList());
			}
			
			
			mapa.put("strIdioma", contexto.get(W83aClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));
			mapa.put("user", contexto.get(W83aClsConstantes.CONSTANTE_CONTEXTO_USUARIO));
			mapa.put("sidx", request.getParameter(W83aClsConstantes.RIA_IDCOLUMNAORDENAR));
			mapa.put("sord", request.getParameter(W83aClsConstantes.RIA_DIRECCIONORDENACION));
			contexto.set("w83aMapaPreavisos",mapa );
			
			W83aDocumentacionBean documentacion=(W83aDocumentacionBean)contexto.get("w83aDocumentacionBean");
			if(StringUtils.isNotEmpty(documentacion.getCentroTrabajo().getCodCentroTrabajo())){
				contexto.set("codSelecCentro",documentacion.getCentroTrabajo().getCodCentroTrabajo());
			}
			contexto.set("tipoBusquedaSeleccionada",documentacion.getTipoBusqueda());
			contexto.set("numActaAnyoSeleccionada",documentacion.getNumActaAnyo());
			contexto.set("numActaTerritorioSeleccionada",documentacion.getNumActaTerritorio());
			contexto.set("numActaNumeroSeleccionada",documentacion.getNumActaNumero());
			contexto.set("numPreavisoTerritorioSeleccionada",documentacion.getNumPreavisoTerritorio());
			contexto.set("numPreavisoNumeroSeleccionada",documentacion.getNumPreavisoNumero());
			contexto.set("numPreavisoAnyoSeleccionada",documentacion.getNumPreavisoAnyo());
			contexto.set("historico",documentacion.getHistorico());
			contexto.set("fechaEleccion",documentacion.getFechaEleccion());
			if(!"P".equals(((String)contexto.get("camino")).substring(((String)contexto.get("camino")).length()-1, ((String)contexto.get("camino")).length()))){
				contexto.set("camino", (String)contexto.get("camino")+"P");
			}
			return mapping.findForward("ok");
		}
		return mapping.findForward("error");

	}

}
